/**
 */
package gatperdut.chato.model.Chato.Entity;

import gatperdut.chato.model.Chato.Constant.Gender;
import gatperdut.chato.model.Chato.Constant.Language;
import gatperdut.chato.model.Chato.Entity.Skill.SkillsContainer;
import gatperdut.chato.model.Chato.Item.EntityInventory;
import gatperdut.chato.model.Chato.Room.Room;
import org.eclipse.emf.cdo.CDOObject;
import org.eclipse.emf.common.util.EList;

/**
 * <!-- begin-user-doc -->
 * A representation of the model object '<em><b>Entity</b></em>'.
 * <!-- end-user-doc -->
 *
 * <p>
 * The following features are supported:
 * <ul>
 *   <li>{@link gatperdut.chato.model.Chato.Entity.Entity#getName <em>Name</em>}</li>
 *   <li>{@link gatperdut.chato.model.Chato.Entity.Entity#getShortDesc <em>Short Desc</em>}</li>
 *   <li>{@link gatperdut.chato.model.Chato.Entity.Entity#getLongDesc <em>Long Desc</em>}</li>
 *   <li>{@link gatperdut.chato.model.Chato.Entity.Entity#getFullDesc <em>Full Desc</em>}</li>
 *   <li>{@link gatperdut.chato.model.Chato.Entity.Entity#getKeywords <em>Keywords</em>}</li>
 *   <li>{@link gatperdut.chato.model.Chato.Entity.Entity#getRoom <em>Room</em>}</li>
 *   <li>{@link gatperdut.chato.model.Chato.Entity.Entity#getGender <em>Gender</em>}</li>
 *   <li>{@link gatperdut.chato.model.Chato.Entity.Entity#getCurrentLanguage <em>Current Language</em>}</li>
 *   <li>{@link gatperdut.chato.model.Chato.Entity.Entity#getKnownLanguages <em>Known Languages</em>}</li>
 *   <li>{@link gatperdut.chato.model.Chato.Entity.Entity#getInventory <em>Inventory</em>}</li>
 *   <li>{@link gatperdut.chato.model.Chato.Entity.Entity#getScores <em>Scores</em>}</li>
 *   <li>{@link gatperdut.chato.model.Chato.Entity.Entity#getSettings <em>Settings</em>}</li>
 *   <li>{@link gatperdut.chato.model.Chato.Entity.Entity#getSkillsContainer <em>Skills Container</em>}</li>
 *   <li>{@link gatperdut.chato.model.Chato.Entity.Entity#getArmorClass <em>Armor Class</em>}</li>
 *   <li>{@link gatperdut.chato.model.Chato.Entity.Entity#getAttackBonus <em>Attack Bonus</em>}</li>
 *   <li>{@link gatperdut.chato.model.Chato.Entity.Entity#getHealth <em>Health</em>}</li>
 * </ul>
 * </p>
 *
 * @see gatperdut.chato.model.Chato.Entity.EntityPackage#getEntity()
 * @model
 * @extends CDOObject
 * @generated
 */
public interface Entity extends CDOObject {
	/**
     * Returns the value of the '<em><b>Name</b></em>' attribute.
     * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Name</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
     * @return the value of the '<em>Name</em>' attribute.
     * @see #setName(String)
     * @see gatperdut.chato.model.Chato.Entity.EntityPackage#getEntity_Name()
     * @model required="true"
     * @generated
     */
	String getName();

	/**
     * Sets the value of the '{@link gatperdut.chato.model.Chato.Entity.Entity#getName <em>Name</em>}' attribute.
     * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
     * @param value the new value of the '<em>Name</em>' attribute.
     * @see #getName()
     * @generated
     */
	void setName(String value);

	/**
     * Returns the value of the '<em><b>Short Desc</b></em>' attribute.
     * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Short Desc</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
     * @return the value of the '<em>Short Desc</em>' attribute.
     * @see #setShortDesc(String)
     * @see gatperdut.chato.model.Chato.Entity.EntityPackage#getEntity_ShortDesc()
     * @model required="true"
     * @generated
     */
	String getShortDesc();

	/**
     * Sets the value of the '{@link gatperdut.chato.model.Chato.Entity.Entity#getShortDesc <em>Short Desc</em>}' attribute.
     * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
     * @param value the new value of the '<em>Short Desc</em>' attribute.
     * @see #getShortDesc()
     * @generated
     */
	void setShortDesc(String value);

	/**
     * Returns the value of the '<em><b>Long Desc</b></em>' attribute.
     * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Long Desc</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
     * @return the value of the '<em>Long Desc</em>' attribute.
     * @see #setLongDesc(String)
     * @see gatperdut.chato.model.Chato.Entity.EntityPackage#getEntity_LongDesc()
     * @model required="true"
     * @generated
     */
	String getLongDesc();

	/**
     * Sets the value of the '{@link gatperdut.chato.model.Chato.Entity.Entity#getLongDesc <em>Long Desc</em>}' attribute.
     * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
     * @param value the new value of the '<em>Long Desc</em>' attribute.
     * @see #getLongDesc()
     * @generated
     */
	void setLongDesc(String value);

	/**
     * Returns the value of the '<em><b>Full Desc</b></em>' attribute.
     * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Full Desc</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
     * @return the value of the '<em>Full Desc</em>' attribute.
     * @see #setFullDesc(String)
     * @see gatperdut.chato.model.Chato.Entity.EntityPackage#getEntity_FullDesc()
     * @model required="true"
     * @generated
     */
	String getFullDesc();

	/**
     * Sets the value of the '{@link gatperdut.chato.model.Chato.Entity.Entity#getFullDesc <em>Full Desc</em>}' attribute.
     * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
     * @param value the new value of the '<em>Full Desc</em>' attribute.
     * @see #getFullDesc()
     * @generated
     */
	void setFullDesc(String value);

	/**
     * Returns the value of the '<em><b>Keywords</b></em>' attribute list.
     * The list contents are of type {@link java.lang.String}.
     * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Keywords</em>' attribute list isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
     * @return the value of the '<em>Keywords</em>' attribute list.
     * @see gatperdut.chato.model.Chato.Entity.EntityPackage#getEntity_Keywords()
     * @model required="true"
     * @generated
     */
	EList<String> getKeywords();

	/**
     * Returns the value of the '<em><b>Room</b></em>' reference.
     * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Room</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
     * @return the value of the '<em>Room</em>' reference.
     * @see #setRoom(Room)
     * @see gatperdut.chato.model.Chato.Entity.EntityPackage#getEntity_Room()
     * @model required="true"
     * @generated
     */
	Room getRoom();

	/**
     * Sets the value of the '{@link gatperdut.chato.model.Chato.Entity.Entity#getRoom <em>Room</em>}' reference.
     * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
     * @param value the new value of the '<em>Room</em>' reference.
     * @see #getRoom()
     * @generated
     */
	void setRoom(Room value);

	/**
     * Returns the value of the '<em><b>Gender</b></em>' attribute.
     * The literals are from the enumeration {@link gatperdut.chato.model.Chato.Constant.Gender}.
     * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Gender</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
     * @return the value of the '<em>Gender</em>' attribute.
     * @see gatperdut.chato.model.Chato.Constant.Gender
     * @see #setGender(Gender)
     * @see gatperdut.chato.model.Chato.Entity.EntityPackage#getEntity_Gender()
     * @model required="true"
     * @generated
     */
	Gender getGender();

	/**
     * Sets the value of the '{@link gatperdut.chato.model.Chato.Entity.Entity#getGender <em>Gender</em>}' attribute.
     * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
     * @param value the new value of the '<em>Gender</em>' attribute.
     * @see gatperdut.chato.model.Chato.Constant.Gender
     * @see #getGender()
     * @generated
     */
	void setGender(Gender value);

	/**
     * Returns the value of the '<em><b>Current Language</b></em>' attribute.
     * The literals are from the enumeration {@link gatperdut.chato.model.Chato.Constant.Language}.
     * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Current Language</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
     * @return the value of the '<em>Current Language</em>' attribute.
     * @see gatperdut.chato.model.Chato.Constant.Language
     * @see #setCurrentLanguage(Language)
     * @see gatperdut.chato.model.Chato.Entity.EntityPackage#getEntity_CurrentLanguage()
     * @model required="true"
     * @generated
     */
	Language getCurrentLanguage();

	/**
     * Sets the value of the '{@link gatperdut.chato.model.Chato.Entity.Entity#getCurrentLanguage <em>Current Language</em>}' attribute.
     * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
     * @param value the new value of the '<em>Current Language</em>' attribute.
     * @see gatperdut.chato.model.Chato.Constant.Language
     * @see #getCurrentLanguage()
     * @generated
     */
	void setCurrentLanguage(Language value);

	/**
     * Returns the value of the '<em><b>Known Languages</b></em>' attribute list.
     * The list contents are of type {@link gatperdut.chato.model.Chato.Constant.Language}.
     * The literals are from the enumeration {@link gatperdut.chato.model.Chato.Constant.Language}.
     * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Known Languages</em>' attribute list isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
     * @return the value of the '<em>Known Languages</em>' attribute list.
     * @see gatperdut.chato.model.Chato.Constant.Language
     * @see gatperdut.chato.model.Chato.Entity.EntityPackage#getEntity_KnownLanguages()
     * @model
     * @generated
     */
	EList<Language> getKnownLanguages();

	/**
     * Returns the value of the '<em><b>Inventory</b></em>' containment reference.
     * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Inventory</em>' containment reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
     * @return the value of the '<em>Inventory</em>' containment reference.
     * @see #setInventory(EntityInventory)
     * @see gatperdut.chato.model.Chato.Entity.EntityPackage#getEntity_Inventory()
     * @model containment="true" required="true" ordered="false"
     * @generated
     */
	EntityInventory getInventory();

	/**
     * Sets the value of the '{@link gatperdut.chato.model.Chato.Entity.Entity#getInventory <em>Inventory</em>}' containment reference.
     * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
     * @param value the new value of the '<em>Inventory</em>' containment reference.
     * @see #getInventory()
     * @generated
     */
	void setInventory(EntityInventory value);

	/**
     * Returns the value of the '<em><b>Scores</b></em>' containment reference.
     * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Scores</em>' containment reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
     * @return the value of the '<em>Scores</em>' containment reference.
     * @see #setScores(Scores)
     * @see gatperdut.chato.model.Chato.Entity.EntityPackage#getEntity_Scores()
     * @model containment="true" required="true"
     * @generated
     */
	Scores getScores();

	/**
     * Sets the value of the '{@link gatperdut.chato.model.Chato.Entity.Entity#getScores <em>Scores</em>}' containment reference.
     * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
     * @param value the new value of the '<em>Scores</em>' containment reference.
     * @see #getScores()
     * @generated
     */
	void setScores(Scores value);

    /**
     * Returns the value of the '<em><b>Settings</b></em>' containment reference.
     * <!-- begin-user-doc -->
     * <p>
     * If the meaning of the '<em>Settings</em>' containment reference isn't clear,
     * there really should be more of a description here...
     * </p>
     * <!-- end-user-doc -->
     * @return the value of the '<em>Settings</em>' containment reference.
     * @see #setSettings(Settings)
     * @see gatperdut.chato.model.Chato.Entity.EntityPackage#getEntity_Settings()
     * @model containment="true" required="true"
     * @generated
     */
    Settings getSettings();

    /**
     * Sets the value of the '{@link gatperdut.chato.model.Chato.Entity.Entity#getSettings <em>Settings</em>}' containment reference.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @param value the new value of the '<em>Settings</em>' containment reference.
     * @see #getSettings()
     * @generated
     */
    void setSettings(Settings value);

    /**
     * Returns the value of the '<em><b>Skills Container</b></em>' containment reference.
     * <!-- begin-user-doc -->
     * <p>
     * If the meaning of the '<em>Skills Container</em>' containment reference isn't clear,
     * there really should be more of a description here...
     * </p>
     * <!-- end-user-doc -->
     * @return the value of the '<em>Skills Container</em>' containment reference.
     * @see #setSkillsContainer(SkillsContainer)
     * @see gatperdut.chato.model.Chato.Entity.EntityPackage#getEntity_SkillsContainer()
     * @model containment="true" required="true"
     * @generated
     */
    SkillsContainer getSkillsContainer();

    /**
     * Sets the value of the '{@link gatperdut.chato.model.Chato.Entity.Entity#getSkillsContainer <em>Skills Container</em>}' containment reference.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @param value the new value of the '<em>Skills Container</em>' containment reference.
     * @see #getSkillsContainer()
     * @generated
     */
    void setSkillsContainer(SkillsContainer value);

    /**
     * Returns the value of the '<em><b>Armor Class</b></em>' attribute.
     * <!-- begin-user-doc -->
     * <p>
     * If the meaning of the '<em>Armor Class</em>' attribute isn't clear,
     * there really should be more of a description here...
     * </p>
     * <!-- end-user-doc -->
     * @return the value of the '<em>Armor Class</em>' attribute.
     * @see #setArmorClass(int)
     * @see gatperdut.chato.model.Chato.Entity.EntityPackage#getEntity_ArmorClass()
     * @model required="true"
     * @generated
     */
    int getArmorClass();

    /**
     * Sets the value of the '{@link gatperdut.chato.model.Chato.Entity.Entity#getArmorClass <em>Armor Class</em>}' attribute.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @param value the new value of the '<em>Armor Class</em>' attribute.
     * @see #getArmorClass()
     * @generated
     */
    void setArmorClass(int value);

    /**
     * Returns the value of the '<em><b>Attack Bonus</b></em>' attribute.
     * <!-- begin-user-doc -->
     * <p>
     * If the meaning of the '<em>Attack Bonus</em>' attribute isn't clear,
     * there really should be more of a description here...
     * </p>
     * <!-- end-user-doc -->
     * @return the value of the '<em>Attack Bonus</em>' attribute.
     * @see #setAttackBonus(int)
     * @see gatperdut.chato.model.Chato.Entity.EntityPackage#getEntity_AttackBonus()
     * @model required="true"
     * @generated
     */
    int getAttackBonus();

    /**
     * Sets the value of the '{@link gatperdut.chato.model.Chato.Entity.Entity#getAttackBonus <em>Attack Bonus</em>}' attribute.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @param value the new value of the '<em>Attack Bonus</em>' attribute.
     * @see #getAttackBonus()
     * @generated
     */
    void setAttackBonus(int value);

    /**
     * Returns the value of the '<em><b>Health</b></em>' containment reference.
     * <!-- begin-user-doc -->
     * <p>
     * If the meaning of the '<em>Health</em>' containment reference isn't clear,
     * there really should be more of a description here...
     * </p>
     * <!-- end-user-doc -->
     * @return the value of the '<em>Health</em>' containment reference.
     * @see #setHealth(Health)
     * @see gatperdut.chato.model.Chato.Entity.EntityPackage#getEntity_Health()
     * @model containment="true" required="true"
     * @generated
     */
    Health getHealth();

    /**
     * Sets the value of the '{@link gatperdut.chato.model.Chato.Entity.Entity#getHealth <em>Health</em>}' containment reference.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @param value the new value of the '<em>Health</em>' containment reference.
     * @see #getHealth()
     * @generated
     */
    void setHealth(Health value);

} // Entity
